1. Field of Invention
This invention relates to semiconductor memory and, more particularly, to test and repair of semiconductor memory.
2. Description of Related Art
Semiconductor memory is a crucial resource in modern computers, being used for data storage and program execution. With the exception of the central processor itself, no other component within the computer experiences as high a level of activity. Traditional trends in memory technology are toward greater density (more memory locations, or xe2x80x9ccellsxe2x80x9d, per part), higher speed and improved reliability. To some extent, these goals are inconsistent. For example, as memory density increases, the incidence of defects also rises. As a result, production yields of high-density memory devices with zero defects would be so low as to render them prohibitively costly. However, an alternative to building perfect devices is to include spare memory cells along with the primary memory of the device. Additional internal circuitry detects faulty cells, and swaps good cells for known-bad ones. Therefore, as long as there are sufficiently many working cells to replace the defective ones, a fully functional memory device can be made. The primary memory is sometimes referred to as xe2x80x9caccessible memoryxe2x80x9d, and the spare memory as xe2x80x9credundant memoryxe2x80x9d. The techniques for internally detecting faulty memory cells and for replacing them with working cells are commonly referred to as xe2x80x9cbuilt-in self-testxe2x80x9d (hereinafter, xe2x80x9cBISTxe2x80x9d) and xe2x80x9cbuilt-in self-repairxe2x80x9d (hereinafter, xe2x80x9cBISRxe2x80x9d), respectively. BIST and BISR are instrumental in obtaining acceptable yields in the manufacture of high-performance semiconductor memory.
Conventional memory devices are typically organized as a matrix of rows and columns, in which each individual cell has a unique row/column address. A popular memory architecture incorporating the above-described BIST and BISR techniques configures spare memory locations as redundant rows. Thus, a nominal mxc3x97n memory device is actually configured as m rows and n columns of accessible memory, with p rows (and n columns) of redundant memory. Redundant memory rows are not part of the nominal mxc3x97n address space of the device, except when used to replace defective accessible memory rows. Circuitry within the memory device itself performs both the test (BIST) and repair functions. During BIST, this circuitry generates test patterns to identify faulty memory locations. Then, during BISR, it reroutes internal connections, circumventing these locations and effectively replacing defective rows of accessible memory with working redundant rows.
Most currently used BIST/BISR methods test not only the accessible memory, but the redundant rows that are swapped in to replace accessible memory locations that have failed. The memory is certified as repairable only if there are enough functional redundant rows to replace every faulty row in the accessible memory; otherwise, it is considered non-repairable. A memory test generally involves writing a specific bit pattern to a range of memory cells, then reading back the values actually stored and comparing them to the desired pattern. In practice, this task is not easily accomplished. There are a variety of failure mechanisms that the BIST algorithm must be able to recognize. The simplest of these, in which memory cells are xe2x80x9cstuckxe2x80x9d in a particular logic state, are readily detected. Others, such as interaction between adjacent rows or columns of the memory, are less obvious. A memory cell that is susceptible to adjacent row adjacent column interaction, for example, tends to follow the logic transitions of neighboring cells; this condition would not be apparent, however, if the cell were tested alone. In order to reveal interaction-related failures, memory tests are often conducted using alternating bit patterns in adjacent rows or columns of the memory matrix (commonly referred to as a xe2x80x9ccheckerboardxe2x80x9d pattern).
It is often desirable to incorporate improvements in the BIST to achieve better fault coverage. However, in conventional BIST/BISR methods, the test and repair functions are highly interdependent. Consequently, modification of the BIST algorithm may entail corresponding changes to the BISR mechanism. Therefore, even minor changes to the test algorithm may necessitate difficult or extensive modification of the repair circuitry. In some cases, the modified BIST may be inconsistent with the existing BISR circuitry.
A typical BIST/BISR method employs two BIST stages (also referred to herein as BIST xe2x80x9crunsxe2x80x9d). In the first stage, the accessible memory is tested row-by-row until a defect is encountered. The row containing the defect is then replaced by the first available redundant row and retested. This process continues until all of the accessible memory has been tested, or until there are no more redundant rows to use as replacements. In the first case, a second BIST run is performed, verifying all of the accessible memory. In the second case, the device is flagged as non-repairable. The two-stage method suffers from several drawbacks, among them the fact that it may overlook adjacent row interaction defects in the memory. Since the method tests accessible memory and redundant memory separately, it cannot detect interaction between adjacent accessible and redundant rows. A further disadvantage of the conventional two-stage method is that the total test time is not predictable. The duration of the test is dependent on the number of bad accessible memory rows, each of which has to be replaced and retested. Since there is no way to know the test time in advance, precise test scheduling during production is impossible.
More complex, multi-stage BIST/BISR methods can be devised to provide better fault detection. However, such methods suffer from the drawback that the array size in each of the BIST runs is different. This demands a separate BIST engine for each run, each specifically configured for its respective array size. The additional circuitry complicates the problem of upgrading BISR circuitry to support BIST enhancements.
The data retention test is another critical evaluation of the memory that may be performed by the BIST. This involves writing a test pattern to the memory, waiting for some prescribed interval, and then reading the memory to determine whether the test pattern was retained. The need for separate BIST tests for each array size in the conventional BIST/BISR method can significantly prolong data retention tests. The test interval is typically on the order of a second, so the retention test may account for the majority of the test time in a BIST run. Consequently, a memory device incorporating a three-stage BIST could require roughly three times as long to test as one with a one-stage BIST.
In view of the above-mentioned problems, it would be desirable to have a method for self-test and self-repair of semiconductor memory devices in which the BISR mechanism is substantially independent of the BIST mechanism, such that changes to the BIST could be accommodated with little or no modification to the BISR. Under the method, the BISR should be consistent with upgrading fault coverage capability in the BIST, e.g., readily supporting improved versions of tests for adjacent row interaction, data retention, etc. In addition, a system embodying the method should be efficient and permit estimation of total test time.
Conventional two-stage BIST/BISR methods may provide inadequate fault coverage, since they do not test for adjacent row interaction. While more complex BIST/BISR methods can be devised to provide better fault detection, such methods are often complicated by the fact that the array size in each of the BIST runs is different. For example, a memory device can be tested in three stages: the first stage tests the redundant memory along with the adjacent accessible row, the second stage tests the accessible memory along with the adjacent redundant row, and the third stage verifies the repaired accessible memory. However, this method requires a separate BIST engine for each run, specifically configured for its respective array size. This additional circuitry greatly complicates the problem of upgrading BISR circuitry to support BIST enhancements.
The problems outlined above are addressed by a system and method for a self-repairing memory that can be integrated with any BIST mechanism, without extensive modification to either the BIST or BISR mechanisms. Rather than relying on separate BIST mechanisms to test the redundant and accessible memory arrays, a single generic BIST may be used to simultaneously test accessible and redundant portions of the memory. The new method is believed to offer improved fault coverage, since a checkerboard pattern spanning the entire memory is used to test for adjacent row interaction. The new method also has the advantage that test time is consistent and predictable.
The method disclosed herein may be used for self-test and self-repair of a memory comprising first and second arrays. According to this embodiment, the entirety of the memory is tested as a single addressable array, and rows in the first and second arrays that fail the test are detected. After the entire memory has been tested, failing rows from the first array are replaced with non-failing rows from the second array in a repair operation. The entirety of the memory is then retested as a single addressable array. During the retest, failing rows in the second array are ignored. If failing rows are detected in the repaired first array during the retest, a xe2x80x9cfailxe2x80x9d result is returned; otherwise, a xe2x80x9cpassxe2x80x9d result is returned. The first array represents the accessible portion of the memory and the second array the redundant portion. According to the method disclosed herein, testing of the memory is done during the first stage of a two-stage procedure, and retesting during the second stage. The repair operation consists of recording the addresses of failing accessible rows in a repair table; associated with each of these addresses is the address of a non-failing redundant row. Using the repair table, the BISR dynamically substitutes a good redundant row for every failing accessible row.
A computer-usable carrier medium having program instructions executable to implement the above-described BIST/BISR method is also contemplated herein. The carrier medium may be a storage medium, such as a magnetic or optical disk, a magnetic tape, or a memory. In addition, the carrier medium may be a wire, cable, or wireless medium along which the program instructions are transmitted, or a signal carrying the program instructions along such a wire, cable or wireless medium. In an embodiment, the carrier medium may contain program instructions in a hardware description language, such as Verilog, to configure circuitry within the memory device capable of implementing the BIST/BISR routine.
In addition to the above-mentioned improved BIST/BISR method and computer-usable medium, a system for self-test and self-repair of a semiconductor memory is contemplated herein. In an embodiment, the system consists of a first mxc3x97n memory array, a second pxc3x97n memory array, a single built-in self-test (BIST) engine adapted to test the first and second arrays as a single joint array and detect rows failing the test, and built-in self-repair (BISR) circuitry that replaces failing rows in the first array with non-failing rows from the second array. The BIST is configured to generate row addresses that span the entire memory array (i.e., m+p rows). The BISR circuitry is capable of assigning addresses generated by the BIST that exceed the dimensions of the first array (i.e.,  greater than m) to rows in the second array. The BISR circuitry may also be capable of reassigning the addresses of failing rows in the first array to rows in the second array. The BIST may test the memory array in two test stages. In the first test stage, the addresses of rows that fail are recorded in a defect list. If there are enough non-failing rows in the second array at the end of the first test stage to replace all the failing rows from the first array, the memory is repaired and retested in a second stage. During the second stage, defects in the first array result in a xe2x80x9cfailxe2x80x9d test result, while defects in the second array are ignored. If there are no defects in the first array, a xe2x80x9cpassxe2x80x9d result is returned. Memory tests performed by the BIST may consist of writing a bit pattern to a portion of the memory, then reading back the contents and comparing them to the original bit pattern. A commonly used bit pattern, called a checkerboard, consists of alternating 1""s and 0""s.